#yasboot collection

# collection host

本命令用于执行服务器基本信息的检查。

选项 含义
-c,--cluster YashanDB的集群名
-F,--format 服务器检查的结果格式化,可选json和html
-o,--output 服务器检查结果和报告的输出目录
-n,--name 服务器检查结果和报告的标识名称
-t,--toml 使用toml文件内的配置项
--host 若指定集群参数,则可为hostid,若不指定,则默认为服务器配置文件hosts.toml
--disable 屏蔽任务进度输出
-d,--child 展示包含子任务执行信息

示例

# 执行本机的服务器检查
$ yasboot collection host

# 使用toml文件的配置项进行检查
$ yasboot collection host -t yascheck.toml

# 执行本机的服务器检查并且生成前端报告输出到规定目录
$ yasboot collection host -F html --output /home/yashan/check

# 执行agent服务器检查
$ yasboot collection host -c yashan

# 检查agent的目标服务器
$ yasboot collection host -c yashan --host host0001

# 检查agent,并生成前端报告到目标目录,命名标识符号为yashan
$ yasboot collection host -c yashan -t yascheck.toml -n yashan -o /home/yashan/check -F html

# 使用hosts.toml文件内的服务器执行SSH进行检查
$ yasboot collection host -t yascheck.toml --host hosts.toml
$ yasboot collection host --host hosts.toml

# 使用hosts.toml文件内的服务器执行SSH进行检查,并生成报告的目标目录
$ yasboot collection host -t yascheck.toml --host hosts.toml -n yashan -o /home/yashan/check -F html
Copied!

# 检查项

服务器检查分为6个模块,硬件检查,服务检查,系统参数检查,资源消耗,网络IO测试以及磁盘IO测试。

硬件检查

检查项 检查内容
CPU 名称(Name)
架构(Arch)
物理CPU核数(PhysicalCPU)
逻辑CPU核数(LogicalCPU)
每个CPU拥有的核心数(CoresPerCPU)
总核心数(ToltalCores)
磁盘(Disk) 设备名称(Device)
文件系统(Filesystem)
大小(Size)
已使用(Used)
可用(Available)
使用率(UsedPercent)
挂载路径(MountedOn)
网络(Net) 网络适配器(NetworkAdapters)
DNS
网关(Gateway)
网络连接状态(NetworkConnection)
内存(Memory) 内存类型(Type)
内存总空间(Total)
已使用(Used)
空闲空间(Free)
共享内存空间(Shared)
缓冲/缓存(BuffersOrCached)
可用空间(Available)

系统参数检查

检查项 检查内容
基础信息(BaseInfo) 操作系统名称(OS)
操作系统版本(Release)
操作系统内核(Kernel)
服务器名称(Hostname)
安全增强型服务(SELinux)
IO调度策略(IOScheduleModel)
语言与编码(LanguageAndEncode)
当前时间(TimeNow)
最后启动时间(LastBootTime)
运行时间(UpTime)
系统参数(Sysctl) DirtyBackgroundRatio
DirtyExpireCentisecs
DirtyRatio
MaxMapCount
MinFreeKbytes
OvercommitMemory
OvercommitRatio
Swappiness
VfsCachePressure
IPV4LocalPortRange
资源限制参数(Ulimit) CoreFileSize
DatasSegSize
SchedulingPriority
FileSize
PendingSignals
MaxLockedMemory
MaxMemorySize
OpenFiles
PipeSize
POSIXMessageQueues
RealTimePriotity
StackSize
CpuTime
MaxUserProcesses
VirtualMemory
FileLocks
用户检查(UserInfo) 特权用户(PrivilegeUsers)
sudo权限用户(Sudoers)
用户

服务检查

检查项 检查内容
防火墙(Firewall) 开机自启(Enabled)
运行状态(Status)
开放端口(OpenPorts)
监听检查(Listening) 监听检查(Listening)
开机自启的服务(EnableService) 开机自启的服务(EnableService)
SSH连接信息(SSH) 开机自启(Enabled)
状态(Status)
协议(Protocol)
允许使用root用户登录(PermitRootLogin)
运行的服务(RunningService) 运行的服务(RunningService)

资源消耗

检查项 检查内容
CPU消耗(CPUTop) CPU消耗(CPUTop)
内存消耗(MemoryTop) 内存消耗(MemoryTop)

磁盘IO测试(默认不开启)

以下检查内容仅展示在前端,因前端内容展示有限,若需要更多检查内容可以打开json文件查看。

检查项 检查内容
基础信息 fio版本(fio version)
测试时间(time)
测试参数(global options)
作业 作业名称(jobname)
目录(directory)
持续时间(elapsed)
文件系统块大小(bs)
文件总大小(size)
读写方式(rw)
读写混合(rwmixread)
运行时间(runtime)
IO读取数据量(io_kbytes)
读取带宽(bw)
读取吞吐量(iops)
IO读取总次数(total_ios)
IO写入数据量(io_kbytes)
写入带宽(bw)
写入吞吐量(iops)
IO写入总次数(total_ios)
平均的io队列深度统计(iodepth_level)
CPU状态 用户态CPU占用率(usr_cpu)
内核态CPU占用率(sys_cpu)
测试过程上下文切换次数(ctx)
磁盘状态 磁盘名称(name)
读IO请求次数(read_ios)
写IO请求次数(write_ios)
磁盘队列花费的所有时间(in_queue)
磁盘利用率(util)

网络IO测试(默认不开启)

检查项 检查内容
基础信息 监听端口等信息
测试结果 每秒传输数据量

# 检查步骤

目前服务器检查分为三种检查方式:

  • 当前服务器执行检查。

  • 基于toml文件内的服务器信息,SSH连接服务器后执行检查。

  • 使用agent执行服务器检查。

服务器检查当前支持使用检查文件来控制是否需要检查某些检查项,详情可以查看yascheck.toml文件的示例,修改其中某些检查项参数为ignore则可以选择是否检查。

# 当前服务器检查

当前服务器检查,执行成功后会生成一个summary.json文件和一个服务器检查结果的JSON文件。服务器检查结果文件可以自定义名称,若不指定自定义名称,默认为yascheck-local-时间戳.json。

$ yasboot collection host
Copied!

可以自定义输出的文件夹和文件名,例如在/home/yashan/check目录生成报告文件,其中服务器检查文件名为yashan1.json。

$ yasboot collection host -o /home/yashan/check/ -n yashan1
Copied!

指定检查仅生成JSON报告或生成html报告和JSON报告(指定生成html报告一定会同时生成JSON报告)。

$ yasboot collection host -F json
$ yasboot collection host -F html
Copied!

指定生成结果为html时,会生成三个文件。

文件 描述
summary.json 报告汇总文件,里面包含了文件的分数以及集成的检查告警项目,此文件名不可更改。
yascheck-local-xxx.json 此文件为检查结果的内容,可通过--name参数自定义文件名。
yasreport.html 此文件为检查报告和检查结果的内容前端展示,此文件名不可更改。

使用yascheck.toml文件进行检查。

$ yasboot collection host -F html -t yascheck.toml
Copied!

使用yascheck.toml生成前端结果报告,并命名为yashan2输出到/home/yashan/check目录。

$ yasboot collection host -F html -t yascheck.toml -o /home/yashan/check -n yashan2
Copied!

# SSH连接服务器并执行检查

通过SSH连接toml文件内记录的服务器并执行检查,会生成与服务器个数对应的服务器检查文件和一个汇总的文件summary.json文件。

$ yasboot collection host --host hosts.toml
Copied!

指定生成html报告。

$ yasboot collection host --host hosts.toml -F html
Copied!

使用自定义的yascheck.toml进行检查。

$ yasboot collection host --host hosts.toml -F html -t yascheck.toml
Copied!

# 使用yasagent执行服务器检查

使用yasagent执行服务器检查,会生成一个xxx.tar.gz的压缩文件,文件夹内容同上。

$ yasboot collection host -c yashan
Copied!

若仅需检查其中一台服务器,可以指定该服务器的hostid。

$ yasboot collection host -c yashan --host host0001
Copied!

指定生成html报告。

$ yasboot collection host -c yashan -F html
Copied!

使用自定义的yascheck.toml进行检查。

$ yasboot collection host -c yashan -F html -t yascheck.toml
Copied!

# collection sql

本命令用于在指定yasdb节点上执行收集SQL并生成报告。

选项 含义
-c,--cluster YashanDB的集群名
-F,--format SQL收集的结果格式化,可选json和html
-o,--output SQL收集结果和报告的输出目录
-n,--name SQL收集结果和报告的标识名称
-t,--toml 使用toml文件内的配置项,默认为conf/sqlcollect.toml
-a,--addr 指定节点的地址,可以为IP:port或YASDB_DATA的路径
-p,--sys-password sys用户密码
--node-ids SQL收集的节点ID,可填写多个并通过英文逗号,隔开,默认为1-1(可以使用all表示收集所有节点)
--disable 屏蔽任务进度输出
-d,--child 展示包含子任务执行信息

示例

# 执行本机的SQL收集
$ yasboot collection sql --addr 127.0.0.1:1688 --sys-password password

# 指定YASDB_DATA路径,通过本地免密的方式,执行本机的SQL收集。本地免密需要添加用户组:YASDBA
$ yasboot collection sql --addr ${YASDB_DATA} -F html

# 使用toml文件的配置项进行收集
$ yasboot collection sql -t sqlcollect.toml --addr 127.0.0.1:1688 --sys-password password

# 执行本机的服务器检查并且生成前端报告输出到规定目录
$ yasboot collection sql -F html --output /home/yashan/check --addr ${YASDB_DATA}

# 执行集群节点1-1的SQL收集
$ yasboot collection sql -c yashan --sys-password password

# 执行集群节点2-1和3-2的SQL收集
$ yasboot collection sql -c yashan --sys-password password --node-ids 2-1,3-2

# 执行集群所有节点的SQL收集
$ yasboot collection sql -c yashan --sys-password password --node-ids all
Copied!

# collection gstack

本命令用于收集服务器上yasdb的gstack信息。

Note:

gstack需要由用户自行安装在对应服务器上,且执行程序可在SSH远程执行命令时被正确找到。

若确认安装但无法识别的,请检查环境变量PATH的配置。

选项 含义
-c,--cluster YashanDB的集群名
-o,--output gstack收集结果和报告的输出目录
-n,--name gstack收集结果和报告的标识名称
--disable 屏蔽任务进度输出
-d,--child 展示包含子任务执行信息

示例

# 执行本机的gstack收集
$ yasboot collection gstack

# 指定YASDB_DATA路径,通过本地免密的方式,执行本机的SQL收集。本地免密需要添加用户组:YASDBA
$ yasboot collection gstack --output /home/yashan/check -n yashan

# 检查agent服务器上所有yasdb进程
$ yasboot collection gstack -c  yashan
Copied!

# collection all

本命令用于一键收集服务器、SQL、gstack、磁盘IO以及网络信息,仅支持通过yasagent进行收集。

选项 含义
-c,--cluster YashanDB的集群名
-F,--format 服务器检查的结果格式化,可选json和html
-o,--output 服务器检查结果和报告的输出目录
-n,--name 服务器检查结果和报告的标识名称
-y,--yascheck-toml 使用toml文件内的配置项
-s,--sql-toml 使用toml文件内的配置项
--node-ids SQL收集的节点ID,可填写多个并通过英文逗号,隔开,默认为1-1(可以使用all表示收集所有节点)
-p,--sys-password sys用户密码
--gstack 是否收集gstack信息,默认不收集
--disable 屏蔽任务进度输出
-cl,--cluster-log 收集数据库集群中所有节点上的全部日志信息和yasdb.ini文件
-cls,--cluster-log-start 收集数据库日志信息的开始时间,默认为当天零点
-cle,--cluster-log-end 收集数据库日志信息的结束时间,默认为当前时间
-f, --force 收集数据日志信息,无需确认起始时间和终止时间
-d,--child 展示包含子任务执行信息
--no-download 不下载到本地
--check-module 检查模块

示例

yasboot collection all -c yashandb --sys-password password -d -F html
Copied!

收集trace等数据库日志信息。

yasboot collection all -c yashandb -sys-password password -d -cl 
Copied!